home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / DockStrip / SdevFragStub.c < prev    next >
C/C++ Source or Header  |  2000-06-23  |  1KB  |  60 lines

  1. #include <Gestalt.h>
  2. #include <DCon.h>
  3. #include <QuickDraw.h>
  4. #include <MixedMode.h>
  5. #include <A4Stuff.h>
  6. #include <ControlStrip.h>
  7.  
  8. #include "DockStrip.h"
  9.  
  10. ProcInfoType __procinfo = sdevMain_ProcInfo;
  11.  
  12. SdevMainProcPtr        gCallThroughSdevMain = (SdevMainProcPtr) 0xDEADBEEF;
  13. SDockStripGlobals*    gGlobalsPtr = nil;
  14.  
  15. pascal long main (
  16.     unsigned long message,
  17.     Handle prefsHandle,
  18.     Rect *statusRect,
  19.     GrafPtr statusPort)
  20. {
  21.     Rect    copy;
  22.     long result;
  23.     Boolean runModule;
  24.  
  25.     static Boolean gotIndex = false;
  26.     static UInt32 index;
  27.  
  28.     if (gGlobalsPtr == nil) {
  29.         Gestalt (dockStripGestalt, (SInt32*)&gGlobalsPtr);
  30.     }
  31.     if (gGlobalsPtr == nil) {
  32.         DebugStr ("\pGlobals not found in Gestalt");
  33.     }
  34.  
  35. //    DebugStr ("\pSdev stub frag main");
  36.  
  37.     if (!gotIndex) {
  38.         gCallThroughSdevMain = (SdevMainProcPtr) message;
  39.         for (index = 0; index < StubListSize; index++) {
  40.             if (gGlobalsPtr -> moduleList [index].module.procPtr == (ProcPtr) gCallThroughSdevMain) {
  41.                 gotIndex = true;
  42.                 return 0;
  43.             }
  44.         }
  45.     }
  46.     
  47.     if (!gotIndex) {
  48.         DebugStr ("\pModule not found in the list");
  49.     }
  50.     
  51.     result = BeforeModule (gGlobalsPtr, index, message, prefsHandle, statusRect, statusPort, &runModule);
  52.  
  53.     if (runModule) {
  54.         copy = *statusRect;
  55.         result = (*gCallThroughSdevMain) (message, prefsHandle, ©, statusPort);
  56.         result = AfterModule (gGlobalsPtr, index, message, prefsHandle, statusRect, statusPort, result);
  57.     } 
  58.     
  59.     return result;
  60. }